package com.tkjt.pms.persist.entity;

import java.util.List;
import java.util.Objects;

import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;

@Data
@TableName("tk_index_value_diff_baseline")
public class TkIndexValueDiffBaseLine implements java.io.Serializable {
    private static final long serialVersionUID = 1L;
	/**ID*/
	@TableId(type = IdType.ID_WORKER_STR)
	private java.lang.String id;
	/**指标年份*/
	private java.lang.String year;
	/**评分人*/
	private java.lang.String indexExecutor;
	/**评分部门*/
	private java.lang.String indexExecutorDepart;
	/**负责人（被评分人）*/
	private java.lang.String indexScorer;
	/**被评分部门*/
	private java.lang.String indexDepart;

	/**指标编码*/
	private java.lang.String indexCode;
	/**指标编码*/
	private java.lang.String indexValueCode;
	/**截止统计月份*/
	private java.lang.Double mTotal;
	/**一月*/
	private java.lang.Double m01;
	/**二月*/
	private java.lang.Double m02;
	/**三月*/
	private java.lang.Double m03;
	/**四月*/
	private java.lang.Double m04;
	/**五月*/
	private java.lang.Double m05;
	/**六月*/
	private java.lang.Double m06;
	/**七月*/
	private java.lang.Double m07;
	/**八月*/
	private java.lang.Double m08;
	/**九月*/
	private java.lang.Double m09;
	/**十月*/
	private java.lang.Double m10;
	/**十一月*/
	private java.lang.Double m11;
	/**十二月*/
	private java.lang.Double m12;
	/**一季度*/
	private java.lang.Double q01;
	/**二季度*/
	private java.lang.Double q02;
	/**三季度*/
	private java.lang.Double q03;
	/**四季度*/
	private java.lang.Double q04;
	/**指标值状态*/
	private java.lang.String indexValueStatus;
	/**创建人*/
	private java.lang.String createBy;

	private String dataType;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date createDate;
	/**更新人*/
	private java.lang.String updateBy;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date updateDate;


	/**部门类别*/
	@TableField(exist=false)
	private String depart;

	/**被评分部门名称*/
	@TableField(exist=false)
	private java.lang.String indexDepartName;

	/**评分指标名称*/
	@TableField(exist=false)
	private java.lang.String indexCodeName;
	/**总分*/
	@TableField(exist=false)
	private Double totalGrade;
	/**评分*/
	@TableField(exist=false)
	private Double grade;
	/**评分*/
	@TableField(exist=false)
	private Double avegGrade;

	/**评分意见*/
	@TableField(exist=false)
	private String indexValueComments;

	/**一月评分意见*/
	@TableField(exist=false)
	private String comments01;
	/**二月评分意见*/
	@TableField(exist=false)
	private String comments02;
	/**三月评分意见*/
	@TableField(exist=false)
	private String comments03;
	/**四月评分意见*/
	@TableField(exist=false)
	private String comments04;
	/**五月评分意见*/
	@TableField(exist=false)
	private String comments05;
	/**六月评分意见*/
	@TableField(exist=false)
	private String comments06;
	/**七月评分意见*/
	@TableField(exist=false)
	private String comments07;
	/**八月评分意见*/
	@TableField(exist=false)
	private String comments08;
	/**九月评分意见*/
	@TableField(exist=false)
	private String comments09;
	/**十月评分意见*/
	@TableField(exist=false)
	private String comments10;
	/**十一月评分意见*/
	@TableField(exist=false)
	private String comments11;
	/**十二月评分意见*/
	@TableField(exist=false)
	private String comments12;

	/**评分年月*/
	@TableField(exist = false)
	private String yearmonth;

	@TableField(exist = false)
	private List<TkIndexValueDiffBaseLine> tkIndexValueDiffs;

	@TableField(exist = false)
	private Integer pageNo;

	@TableField(exist = false)
	private Integer pageSize;
	/**
	 * 重写equals方法
	 */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
			return true;
		}
        if (o == null || getClass() != o.getClass()) {
			return false;
		}
        if (!super.equals(o)) {
			return false;
		}
        TkIndexValueDiffBaseLine entity = (TkIndexValueDiffBaseLine) o;
        return Objects.equals(id, entity.id) &&
                Objects.equals(year, entity.year) &&
                Objects.equals(indexExecutor, entity.indexExecutor) &&
                Objects.equals(indexExecutorDepart, entity.indexExecutorDepart) &&
                Objects.equals(indexDepart, entity.indexDepart) &&
                Objects.equals(indexCode, entity.indexCode) &&
                Objects.equals(indexValueCode, entity.indexValueCode) &&
                Objects.equals(mTotal, entity.mTotal) &&
                Objects.equals(m01, entity.m01) &&
                Objects.equals(m02, entity.m02) &&
                Objects.equals(m03, entity.m03) &&
                Objects.equals(m04, entity.m04) &&
                Objects.equals(m05, entity.m05) &&
                Objects.equals(m06, entity.m06) &&
                Objects.equals(m07, entity.m07) &&
                Objects.equals(m08, entity.m08) &&
                Objects.equals(m09, entity.m09) &&
                Objects.equals(m10, entity.m10) &&
                Objects.equals(m11, entity.m11) &&
                Objects.equals(m12, entity.m12) &&
                Objects.equals(q01, entity.q01) &&
                Objects.equals(q02, entity.q02) &&
                Objects.equals(q03, entity.q03) &&
                Objects.equals(q04, entity.q04) &&
                Objects.equals(indexValueStatus, entity.indexValueStatus) &&
                Objects.equals(createBy, entity.createBy) &&
                Objects.equals(createDate, entity.createDate) &&
                Objects.equals(updateBy, entity.updateBy) &&
                Objects.equals(updateDate, entity.updateDate);
    }

    /**
     * 重写hashCode方法
     */
    @Override
    public int hashCode() {

        return Objects.hash(super.hashCode(), id, year, indexExecutor,
        		indexExecutorDepart, indexDepart, indexCode, indexValueCode,mTotal,
        		m01,m02,m03,m04,m05,m06,m07,m08,m09,m10,m11,m12,q01,q02,q03,q04,
        		indexValueStatus,
        		createBy, createDate, updateBy, updateDate);
    }
    
}
